package cn.school.course.service;

import cn.school.course.entity.CourseConflict;
import cn.school.sys.entity.SysConfig;
import cn.school.sys.entity.TermTime;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.Date;
import java.util.List;

/**
 * @className: 课程-冲突情况Service
 * @author: fangjin.tao
 * @date: 2023/1/4
 **/
public interface CourseConflictService extends IService<CourseConflict> {
	/**
	 * 课程冲突处理
	 *
	 * @param sysCurrentTime
	 * @param tetiTermEndDate
	 * @param conflictType    冲突类型
	 * @param keyList 对应型冲突检测Key
	 * @throws
	 * @author fangjin.tao
	 * @updateTime 2023/1/11 11:15
	 */
	void saveCourConflictProcess(Date sysCurrentTime, Date tetiTermEndDate, String conflictType, List<String> keyList);
	
	/**
	 * 把预生成课程，转换为正试课表
	 *
	 * @throws
	 * @author fangjin.tao
	 * @param: time
	 * @param: tetiTermEndDate
	 * @updateTime 2023/1/12 8:23
	 */
	void saveBatchCourse(SysConfig courConflictEnable, Date time, Date tetiTermEndDate);
	
	/**
	 * 根据冲突key检测值，更新冲突情况
	 *
	 * @throws
	 * @author fangjin.tao
	 * @updateTime 2023/2/8 9:20
	 */
	void updateConflictCase(TermTime termTime, List<String> allTeacherKeyeyList, List<String> allRommKeyList);
}
